package org.tea.inventory.utils;

import cn.hutool.core.collection.CollUtil;

import java.util.Collection;

/**
 * @author hanzy
 * @description
 * @date 2023年08月14日 10:20
 */
public class MallUtils {

    /**
     * 集合1中是否包含集合2中所有的元素，即集合2是否为集合1的子集
     *
     * @param coll1 集合1
     * @param coll2 集合2
     * @return 集合1中是否包含集合2中所有的元素
     * @since 4.5.12
     */
    public static boolean containsAll(Collection<?> coll1, Collection<?> coll2) {
        if (CollUtil.isEmpty(coll1)) {
            return CollUtil.isEmpty(coll2);
        }

        if (CollUtil.isEmpty(coll2)) {
            return true;
        }

        if (coll1.size() < coll2.size()) {
            return false;
        }

        for (Object object : coll2) {
            if (false == coll1.contains(object)) {
                return false;
            }
        }
        return true;
    }

    public static int containsAllCount(Collection<?> coll1, Collection<?> coll2) {
        int count = 0;
        if (CollUtil.isEmpty(coll1)) {
            return count;
        }

        if (CollUtil.isEmpty(coll2)) {
            return count;
        }

        if (coll1.size() < coll2.size()) {
            return count;
        }

        for (Object object : coll2) {
            if (coll1.contains(object)) {
                count++;
            }
        }
        return count;
    }

    /**
     * @description: 根据排名获得积分
     * @param: rownum
     * @return: java.lang.Long
     * @author hzy
     * @date: 2023/8/15 10:15
     */
    public static Long answerTopIntegral(Long rownum) {
        /**奖励规则：每天1000
        1-20名：每人20积分（共400积分）
        21-50名：每人10分（共300积分）
        50-110名：每人5积分（300积分）**/
        Long integral = 0L;
        if (0L < rownum && rownum <= 20L) {
            integral = 20L;
        }
        if (20L < rownum && rownum <= 50L) {
            integral = 10L;
        }
        if (50L < rownum && rownum <= 110L) {
            integral = 5L;
        }
        return integral;
    }
/**
 * @description: 吃金币 奖励规则
 * @param: rownum
 * @return: java.lang.Long
 * @author hzy
 * @date: 2023/10/24 16:13
 */
    public static Long flurkies(Long rownum) {
        /**1-20名：每人100积分（共2000积分）
         21-50名：每人50积分（共1500积分）
         51-100名：每人30积分（共1500积分）**/
        Long integral = 0L;
        if (0L < rownum && rownum <= 20L) {
            integral = 100L;
        }
        if (20L < rownum && rownum <= 50L) {
            integral = 50L;
        }
        if (50L < rownum && rownum <= 100L) {
            integral = 30L;
        }
        return integral;
    }
    public static Long newYear2048(Long rownum) {
        /**1-20名 100积分（2000）
         21-50名：50积分（1500）
         51-100名:20积分（1000）
         100名以后：每人10分（预计900人 9000）**/
        Long integral = 0L;
        if (0L < rownum && rownum <= 10L) {
            integral = 100L;
        }
        if (11L < rownum && rownum <= 30L) {
            integral = 50L;
        }
        if (30L < rownum && rownum <= 100L) {
            integral = 20L;
        }else if (rownum>100L){
            integral = 5L;
        }
        return integral;
    }
}
